/**
 * 滚动条组件配置选项
 */
export interface TuiScrollbarProps {
  // 滚动条轨道宽度
  trackWidth?: number;
  // 滚动条滑块宽度
  thumbWidth?: number;
  // 宽度同步模式：'auto'（自动同步）或 'separate'（独立设置）
  widthSyncMode?: 'auto' | 'separate';
  // 滚动条轨道颜色
  trackColor?: string;
  // 滚动条滑块颜色
  thumbColor?: string;
  // 滚动条滑块悬停颜色
  thumbHoverColor?: string;
  // 滚动条滑块圆角
  borderRadius?: number;
  // 是否仅在内容溢出时显示滚动条
  showOnlyWhenNeeded?: boolean;
  // 高度，默认为'auto'（自适应内容高度）
  height?: string | number;
  // 最大高度
  maxHeight?: string | number;
  // 容器宽度
  width?: string | number;
  // 是否显示水平滚动条
  showHorizontal?: boolean;
  // 是否显示垂直滚动条
  showVertical?: boolean;
  // 初始滚动位置
  initialScrollTop?: number;
  // 是否启用滚动到顶部按钮
  showToTopButton?: boolean;
  // 滚动到顶部按钮的阈值（滚动距离超过此值才显示）
  toTopThreshold?: number;
  // 滚动条显示模式：'hover'（鼠标悬停时显示）或 'always'（始终显示）
  visibilityMode?: 'hover' | 'always';
  // 鼠标滚轮控制水平滚动的行为：'shift'（按住Shift键）或 'auto'（自动）
  wheelHorizontal?: 'shift' | 'auto';
  // 是否启用平滑滚动
  enableSmoothScroll?: boolean;
  // 平滑滚动的摩擦系数（0-1，值越大滚动越快停止）
  scrollFriction?: number;
  // 平滑滚动的加速度系数（0-1，值越大加速度越快）
  scrollAcceleration?: number;
  // 平滑滚动的最小速度阈值（低于此值时停止滚动）
  scrollMinVelocity?: number;
  // 滚轮灵敏度（0.1-3，值越小滚动越不敏感，默认为1）
  wheelSensitivity?: number;
}

/**
 * 滚动信息接口
 */
export interface ScrollInfo {
  // 垂直滚动位置
  top: number;
  // 水平滚动位置
  left: number;
  // 内容总高度
  height: number;
  // 内容总宽度
  width: number;
  // 可视区域高度
  clientHeight: number;
  // 可视区域宽度
  clientWidth: number;
  // 是否在顶部
  isAtTop: boolean;
  // 是否在底部
  isAtBottom: boolean;
}